﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VentaElectrodomesticos.Contrato;
using System.Data.SqlClient;

namespace VentaElectrodomesticos.Datos
{
    public class UsuarioDAO : BaseDAO<Usuario>
    {
        protected override string getTableView()
        {
            return "usuarios";
        }

        public override bool save(Usuario entity)
        {
            List<SqlParameter> parameters = new List<SqlParameter>();

            if (entity.__Roles != null && entity.__Roles.Count() > 0)
            {
                string rolesIds = "";
                foreach (Rol rol in entity.__Roles)
                {
                    rolesIds += rol.Id.ToString() + ",";
                }
                rolesIds = rolesIds.Substring(0, rolesIds.Length - 1);
                parameters.Add(new SqlParameter("@roles_ids", rolesIds));
            }

            if (entity.Id > 0)
            {
                parameters.Add(new SqlParameter("@usuario_id", entity.Id));
            }
            parameters.Add(new SqlParameter("@usuario", entity.usuario));
            parameters.Add(new SqlParameter("@contrasenia", entity.contrasenia));
            parameters.Add(new SqlParameter("@empleado_id", entity.empleado_id));

            this.executeStoredProcedure(Config.tableSpace + "guardarUsuario", parameters);
            return true;
        }

        public void disable(string usuario)
        {
            string sql = "UPDATE " + Config.tableSpace + "usuario SET inactivo = 'true' WHERE usuario = '" + usuario + "';";
            this.execute(sql);
        }
    }
}
